import { createApp } from 'vue'
import App from './App.vue'
import gloablComponent from './components/index'
import axios from 'axios'
import router from './router/index.ts'
import '@/styles/index.scss'
import { piniaReset } from '@/store/modules/reset.ts'
// 挂载SVG图库
import 'virtual:svg-icons-register'
import ElementPlus from 'element-plus'
import zhCn from 'element-plus/dist/locale/zh-cn.mjs'
import 'element-plus/dist/index.css'
import pinia from '@/store/index.ts'
//进入echarts按需引入接口
import echarts from './utils/echarts.ts'
import { isHasButton } from '@/directive/isHasButton.ts'

// 持久化
import piniaPluginPersistedstate from 'pinia-plugin-persistedstate' /* 进度条 */
import 'element-plus/theme-chalk/dark/css-vars.css' //暗黑模式
import { initRouter, nprogressRouter } from './permisstion.ts'

const app = createApp(App)
/* 全局注册一个简单深拷贝的方法 */
isHasButton(app)

export async function initMenuRouter() {
    await initRouter()

  app.use(router)
  //pinia使用持久化插件
  app.use(pinia)
  pinia.use(piniaPluginPersistedstate)
  pinia.use(piniaReset)
  app.use(gloablComponent)
  app.use(ElementPlus, {
    locale: zhCn //element-plus国际化配置
  })
  // echarts 挂载到 Vue实例中
  // 注意：app.config.globalProperties 和 app.provide('$echarts', echarts) 二选一即可
  // Vue.prototype.$echarts = echarts; // vue2的挂载方式
  app.provide('$echarts', echarts) // vue3的挂载方式（一个用于注册能够被应用内所有组件实例访问到的全局属性的对象。）
  /***********************echart 挂载 END*******************************/
  /* 引入我们的路由守卫 */
  // 引入自定义指令
  nprogressRouter()
  app.mount('#app')
}
initMenuRouter()
// // 登录接口
// axios({
//     url: '/api/user/login',//请求地址0
//     method: 'post',//请求方式
//     data: {
//         username: 'admin',
//         password: '111112221',

//     }

// })
